Tactics

under

Encendemos la máquina y nos da la dirección IP 10.129.96.179. Con la herramienta ping le enviamos un paquete para saber si la máquina esta activa.

❯ ping -c 5 10.129.96.179
PING 10.129.96.179 (10.129.96.179) 56(84) bytes of data.
64 bytes from 10.129.96.179: icmp_seq=1 ttl=127 time=247 ms
64 bytes from 10.129.96.179: icmp_seq=2 ttl=127 time=120 ms
64 bytes from 10.129.96.179: icmp_seq=3 ttl=127 time=121 ms
64 bytes from 10.129.96.179: icmp_seq=4 ttl=127 time=120 ms
64 bytes from 10.129.96.179: icmp_seq=5 ttl=127 time=128 ms
--- 10.129.96.179 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 119.939/147.233/247.262/50.103 ms

Vemos que tiene un TTL de 127, estamos frente a una máquina Windows.

Enumeración

Usando nmap haremos un escaneo rápido y sigiloso para identificar puertos abiertos:

nmap -p- --open -sS --min-rate 5000 -vvv -n -P 10.129.96.179
under

Vemos algunos puertos abiertos, entonces para eliminar el ruido de la captura de nmap vamos a usar la herramienta extractPorts:

under

Vamos a hacer un escaneo exhaustivo a los puertos abiertos con nmap para identificar la version y servicio de esos puertos:

nmap -sCV -p135,139,445 10.129.96.179 -oN targeted
under

Explotación

El puerto que más llama la atención es el 445 ya que hay un servicio SMB compartido a nivel de red, al cual podemos acceder usando la herramienta smbclient

under

Pero no podemos ver ningún recurso, podemos probar agregando -U user donde el usuario será el defecto en Windows ‘Administrator’:

under

Y esta vez podemos listar los recursos, probamos a conectarnos a la unidad compartida $C:

under

Y una vez dentro encontramos la flag en el escritorio.

under

Habremos completado la máquina.


Bonus

Podemos usar la herramienta impacket, ya que podemos acceder a ADMIN$ como recurso compartido, vamos a ejecutar un script llamado psexec.py para explotar esta mala configuración y tener una shell interactiva.

Impacket y Psexec.py Ejecución Remota de Comandos en Windows

Impacket es un framework escrito en Python para trabajar con protocolos de red. Está enfocado en proporcionar acceso programático de bajo nivel a los paquetes y, para algunos protocolos (como SMB y MSRPC), la implementación completa del protocolo. En resumen, Impacket contiene docenas de herramientas increíbles para interactuar con sistemas y aplicaciones Windows, muchas de las cuales son ideales para atacar sistemas Windows y Active Directory.

Psexec.py en Impacket

Una de las herramientas más comúnmente utilizadas de Impacket es psexec.py. Esta herramienta lleva su nombre de la utilidad PsExec de la suite Sysinternals de Microsoft, ya que realiza la misma función: permitirnos ejecutar un shell completamente interactivo en máquinas Windows remotas.

PsExec es una herramienta portátil de Microsoft que permite ejecutar procesos de manera remota utilizando las credenciales de cualquier usuario. Es algo similar a un programa de acceso remoto, pero en lugar de controlar la computadora con un ratón, los comandos se envían mediante la línea de comandos, sin necesidad de instalar software cliente de manera manual.

Funcionamiento de Psexec en Impacket

Es importante entender cómo funciona psexec.py de Impacket. Este crea un servicio remoto subiendo un ejecutable con un nombre aleatorio en el recurso compartido ADMIN$ del sistema remoto y luego lo registra como un servicio de Windows. Esto resultará en un shell interactivo disponible en el sistema Windows remoto a través del puerto TCP 445.

Psexec requiere credenciales de un usuario con privilegios de administrador local o superiores, ya que es necesario leer/escribir en el recurso compartido ADMIN$. Una vez que la autenticación sea exitosa, se accederá a un shell NT AUTHORITY\SYSTEM.

Descarga e Instalación de Impacket

Puedes descargar Impacket desde el siguiente enlace:

Descargar Impacket

Guía de instalación:

Si no tienes instalado pip3 (pip para Python3) o Python3, instálalos con los siguientes comandos:

sudo apt install python3 python3-pip

El script pkexec.py se puede encontrar en la ruta /impacket/examples/pkexec.py. Para ver la información de ayuda para psexec.py, ejecuta el siguiente comando:

psexec.py -h

Para clonar el repositorio e instalar Impacket, ejecuta:

git clone https://github.com/SecureAuthCorp/impacket.git
cd impacket
pip3 install .
# O también puedes usar:
sudo python3 setup.py install

Sintaxis para obtener un shell interactivo

Para obtener un shell interactivo:

python psexec.py usuario:contraseña@ipDelHost

El usuario Administrator no tiene contraseña (como vimos en el caso de smbclient), entonces el comando sería:

psexec.py administrator@10.10.10.131

Cuando solicite la contraseña presionar Enter (ya que no hay contraseña configurada).

Y seremos el usuario con más altos privilegios, es decir, el usuario NT AUTHORITY\SYSTEM.

under

Esta publicación ha sido creada como soporte en mi formación académica y crecimiento profesional.

© Juan David Garcia Acevedo (aka liandd)